//
//  ViewController.swift
//  表情键盘
//
//  Created by 雷路荣 on 15/12/28.
//  Copyright © 2015年 leilurong. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var textView: UITextView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        textView.becomeFirstResponder()
        
        // 不能再这里设置，表情键盘控制器不能死掉，控制器viewDidLoad执行完就销毁了
        // let emoticonVC: LREmoticonController = LREmoticonController(textView: self.textView)
        // textView.inputView = emotionVc.view
        
        // 自定义键盘,设置inputView
        textView.inputView = emotionVc.view
        //转成表情
        emoji()
        
        //print("\(NSBundle.mainBundle())")
        
    }
    // 将一个16进制的字符串,转成emoji表情
    private func emoji() {
        let code = "0x1f60d"
        // 定义扫描器
        let scanner = NSScanner(string: code)
        // 扫描
        // result: UnsafeMutablePointer<UInt32>: 需要一个 UInt32类型的可变指针
        var result: UInt32 = 0
        scanner.scanHexInt(&result)
        print("result = \(result)")
        //转成字符串
        let scalar = UnicodeScalar(result)
        let c = Character(scalar)
        let emoji = String(c)
        //添加到textView上
        textView.text = emoji
    }
    //MARK: - 懒加载
    /// 表情键盘控制器
    private lazy var emotionVc: LREmoticonController = LREmoticonController(textView: self.textView)

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        
        /*
        // 拼接之后的文本内容
        var textM = ""
        // 表情图片会分段保存在textView.attributedText里面,需要分段获取,拼接起来
        //        print("textView的文本:\(textView.attributedText)")
        // 遍历属性文本的每一段
        // attrName: 要遍历的String
        // inRange: 范围
        textView.attributedText.enumerateAttributesInRange(NSRange(location: 0, length: textView.attributedText.length), options: NSAttributedStringEnumerationOptions(rawValue: 0)) { (result, range, _) -> Void in
        // 如果result 字典里面包含 NSAttachment key就是一个图片,其他情况直接截取文本
        //            print("result: \(result)")
        //            print("range: \(range)")
        //            print("--------")
        if let attachment = result["NSAttachment"] as? LRTextAttachment {
        // result 字典里面包含 NSAttachment key 就是一个图片,需要获取到附件图片的名称
        // 让附件里面带有图片的名称
        
        textM += attachment.chs!
        } else {
        // 文本,其他情况直接截取文本
        let text = (self.textView.attributedText.string as NSString).substringWithRange(range)
        
        // 将截取的字符串拼接到textM后面
        //                textM = textM + text
        textM += text
        }
        }
        print("最终文字: \(textM)")
        */
        
        //打印输入的信息
        print(textView.emoticonText())
    }

}

